'''
 * 頂頂頂頂頂頂頂頂頂　頂頂頂頂頂頂頂頂頂
 * 頂頂頂頂頂頂頂　　　　　頂頂
 * 　　　頂頂　　　頂頂頂頂頂頂頂頂頂頂頂
 * 　　　頂頂　　　頂頂頂頂頂頂頂頂頂頂頂
 * 　　　頂頂　　　頂頂　　　　　　　頂頂
 * 　　　頂頂　　　頂頂　　頂頂頂　　頂頂
 * 　　　頂頂　　　頂頂　　頂頂頂　　頂頂
 * 　　　頂頂　　　頂頂　　頂頂頂　　頂頂
 * 　　　頂頂　　　頂頂　　頂頂頂　　頂頂
 * 　　　頂頂　　　　　　　頂頂頂
 * 　　　頂頂　　　　　　頂頂　頂頂　頂頂
 * 　頂頂頂頂　　　頂頂頂頂頂　頂頂頂頂頂
 * 　頂頂頂頂　　　頂頂頂頂　　　頂頂頂頂
 '''

import sensor, image, time

#阈值
threshold   =  (33, 74, 42, 93, 14, 83)

#距离系数K
#计算距离系数的方法，让待测物体距离摄像头10cm，打印出摄像头直径的像素值（物体宽度乘物体高度的和除2），摄像头直径的像素值乘10cm就是K的值
K = 935

sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_vflip(1) # 打开垂直翻转
sensor.set_hmirror(1) # 打开水平镜像
sensor.set_framesize(sensor.QQVGA)
sensor.skip_frames(time = 2000)
clock = time.clock()

#找出返回色块列表中最大色块
def findMaxBlob(blobs):
    MaxSize = 0
    for blob in blobs:
            if blob[2]*blob[3] >= MaxSize:
                MaxSize = blob[2]*blob[3]
                MaxBlob = blob
    return MaxBlob

while(True):
    clock.tick()
    img = sensor.snapshot()
    #print(clock.fps())

    blobs = img.find_blobs([threshold])
    if blobs:
        MaxBlob = findMaxBlob(blobs)
        img.draw_rectangle(MaxBlob.rect())
        img.draw_cross(MaxBlob.cx(), MaxBlob.cy())

        #距离系数K的计算
        #Lm = (MaxBlob.w()+MaxBlob.h())/2
        #K1 = 10*Lm
        #print(str(K1))


        #像素点计算
        Lm = (MaxBlob.w()+MaxBlob.h())/2
        length = K/Lm
        print(length)
